package com.scott.sort;

import java.util.Arrays;

/**
 * 排序算法
 *
 * @author Scott 2017/11/6 11:19
 */
public class SortAlgorithm {

    public static void main(String[] args) {
        int test[] = {10, 40, 30, 60, 90, 70, 20, 50, 80};

        bubbleSort(test);
        Arrays.stream(test).forEach((item) -> {
            System.out.print(item + " ");
        });
    }

    /**
     * 冒泡排序
     */
    private static void bubbleSort(int[] test) {
        int i, j;
        int flag;                 // 标记

        for (i = test.length - 1; i > 0; i--) {

            flag = 0;            // 初始化标记为0
            // 将a[0...i]中最大的数据放在末尾
            for (j = 0; j < i; j++) {
                if (test[j] > test[j + 1]) {
                    // 交换a[j]和a[j+1]
                    int tmp = test[j];
                    test[j] = test[j + 1];
                    test[j + 1] = tmp;

                    flag = 1;    // 若发生交换，则设标记为1
                }
            }

            if (flag == 0)
                break;            // 若没发生交换，则说明数列已有序。
        }
    }


}
